home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 2 / Tech Arsenal 2 (Arsenal Computer).iso / clipper / s93bsp.exe / INVSCRN.PRG < prev    next >
Encoding:
Text File  |  1991-04-05  |  12.3 KB  |  421 lines

  1. procedure INVSAY
  2. *       I N V  S A Y
  3. parameters GETEM
  4. @ 2,0 clear to 24,79
  5. *       TEXT outlines
  6. set color to (COLNORM)
  7.  
  8. @ 02,61 say "Invoice no:"
  9. @ 03,00 say "┌─ Owner ──────────────────────────────┐ ┌─ Invoice Totals ────────────────────┐"
  10. @ 04,00 say "│"+space(38)+"│ │                    Ins Co.  Owner   │"
  11. @ 05,00 say "│ Name:"+space(32)+"│ ├─────────────────────────────────────┤"
  12. @ 06,00 say "│ Addr:"+space(32)+"│ │     Total Labour                    │"
  13. @ 07,00 say "│"+space(38)+"│ │      Total Parts                    │"
  14. @ 08,00 say "│"+space(38)+"│ │ Specialist Mat's                    │"
  15. @ 09,00 say "│ Home:              Work:             │ ├─────────────────────────────────────┤"
  16. @ 10,00 say "│"+space(38)+"│ │   Total excl VAT                    │"
  17. @ 11,00 say "│ Owner VAT registered?   (Y/N)        │ │ Parts discnt   %                    │"
  18. @ 12,00 say "│ Insurance Co. to pay?   (Y/N)        │ │        Sub-total                    │"
  19. @ 13,00 say "└──────────────────────────────────────┘ │    VAT at   %                    │"
  20. @ 14,00 say "┌─ Parts ──────────────────────────────┐ ├─────────────────────────────────────┤"
  21. @ 15,00 say "│"+space(38)+"│ │        Sub-total                    │"
  22. @ 16,00 say "│"+space(38)+"│ │"+space(37)+"│"
  23. @ 17,00 say "│"+space(38)+"│ │ Owner XS"+space(28)+"│"
  24. @ 18,00 say "│"+space(38)+"│ │ Contrib"+space(29)+"│"
  25. @ 19,00 say "│"+space(38)+"│ │"+space(37)+"│"
  26. @ 20,00 say "│"+space(38)+"│ │ Due from Ins. Co                    │"
  27. @ 21,00 say "│"+space(38)+"│ │   Due from Owner                    │"
  28. @ 22,00 say "│"+space(38)+"│ ╞═════════════════════════════════════╡"
  29. @ 23,00 say "│"+space(38)+"│ │"+space(37)+"│"
  30. @ 24,00 say "└──────────────────────────────────────┘ └─────────────────────────────────────┘"
  31. set color to (COLHEAD)
  32. @ 23,46 say "Invoice Total"
  33.  
  34. do INVGET with GETEM
  35.  
  36. return
  37.  
  38. ******************************************************************
  39.  
  40. procedure INVGET
  41. parameters GETEM
  42. set color to (COLNORM)
  43.  
  44. SINVNO()
  45. do while .t.
  46.     @ 05,08 get MOWNINIT
  47.     @ 05,15 get MOWNNAME
  48.     @ 06,08 get MOWNADD1
  49.     @ 07,08 get MOWNADD2
  50.     @ 08,08 get MOWNADD3
  51.     @ 09,08 get MOWNTELH
  52.     @ 09,27 get MOWNTELB
  53.     if GETEM
  54.         @ 11,24 get MOWNVAT picture "Y"              && Clipper bug!
  55.         @ 12,24 get MINSTOPAY picture "Y"
  56.     else
  57.         set color to (COLBRIGHT)
  58.         @ 11,24 say MOWNVAT picture "Y"
  59.         @ 12,24 say MINSTOPAY picture "Y"
  60.         set color to (COLNORM)
  61.     endif
  62.     @ 11,56 get MPARTDISC picture "99"
  63.     @ 13,53 get MVATRATE  picture "99.99"
  64.  
  65.     if GETEM
  66.         do QBREAD with "Fill in Owner details"
  67.         if GETOUT                                    && Can't use OR
  68.             exit
  69.         elseif QBYESNO("Owner details OK?")="Y"
  70.             exit
  71.         endif
  72.     else
  73.         clear gets
  74.         exit
  75.     endif
  76. enddo
  77. set color to (COLNORM)
  78. if "AVIS"$upper(MOWNNAME) .and. empty(MCUSTTYP)
  79.     MCUSTTYP = "AVIS"
  80. endif
  81. return
  82.  
  83. ******************************************************************
  84.  
  85. procedure INVTOT
  86. private SUMPART    && , SUMSPEC
  87.  
  88. do INVTOTAL with .t.
  89. *   Various other Total fields
  90.  
  91. set color to (COLBRIGHT)
  92.  
  93. @ 06,62 say PRPOS(MINSLAB, "9999.99")
  94. @ 07,62 say PRPOS(MINSPART, "9999.99")
  95. @ 08,62 say PRPOS(MINSSPEC, "9999.99")
  96. @ 10,62 say PRPOS(MINSAMT, "9999.99")
  97. @ 11,62 say PRPOS(IPDSCNT, "9999.99")
  98. @ 12,62 say PRPOS(ISUBTOT, "9999.99")
  99. @ 13,62 say PRPOS(IVATAMT, "9999.99")
  100. @ 15,62 say PRPOS(INSSUB, "9999.99")
  101. @ 17,71 say PRPOS(MEXCESS, "9999.99")
  102. @ 17,53 say PRPOS(MEXCESS, "9999.99")
  103. @ 18,71 say PRPOS(MCONTRIB, "9999.99")
  104. @ 18,53 say PRPOS(MCONTRIB, "9999.99")
  105. @ 20,62 say PRPOS(MINSDUE, "9999.99")
  106.  
  107. @ 06,71 say PRPOS(MOWNLAB, "9999.99")
  108. @ 07,71 say PRPOS(MOWNPART, "9999.99")
  109. @ 08,71 say PRPOS(MOWNSPEC, "9999.99")
  110. @ 10,71 say PRPOS(MOWNAMT, "9999.99")
  111. @ 11,71 say PRPOS(OPDSCNT, "9999.99")
  112. @ 12,71 say PRPOS(OSUBTOT, "9999.99")
  113. @ 13,71 say PRPOS(OVATAMT,"9999.99")
  114. @ 15,71 say PRPOS(OWNSUB, "9999.99")
  115. @ 21,71 say PRPOS(MOWNDUE, "9999.99")
  116.  
  117. MINVTOTAL = MOWNDUE + MINSDUE
  118. @ 23,71 say PRPOS(MINVTOTAL, "9999.99")
  119.  
  120. set color to (COLNORM)
  121. return
  122.  
  123. ******************************************************************
  124.  
  125. procedure invveh
  126. *       I N V V E H
  127. *       get or say vehicle particulars
  128. parameters GETEM
  129.  
  130. private OLDSCR, STAT
  131. STAT = "N"
  132. set color to (COLNORM)
  133. OLDSCR = savescreen(0,0,24,40)
  134. @ 0,0 clear to 24,40
  135. @ 07,01,23,39 BOX "┌─┐│┘─└│ "
  136. @ 07,03 say " Vehicle "
  137. @ 11,01 say "├"
  138. @ 11,39 say "┤"
  139. @ 13,01 say "├"
  140. @ 13,39 say "┤"
  141. @ 15,01 say "├"
  142. @ 15,39 say "┤"
  143. @ 17,01 say "├"
  144. @ 17,39 say "┤"
  145. @ 19,01 say "├"
  146. @ 19,39 say "┤"
  147. @ 21,01 say "├"
  148. @ 21,39 say "┤"
  149. @ 09,03 say "Date   In         Out       Invoice"
  150. @ 11,02 say "─────────────────────────────────────"
  151. @ 12,03 say "Make:"
  152. @ 13,02 say "─────────────────────────────────────"
  153. @ 14,03 say "Speedo:           Fuel:   (0-4 Qtrs)"
  154. @ 15,02 say "─────────────────────────────────────"
  155. @ 16,03 say "Reg no:           Year:"
  156. @ 17,02 say "─────────────────────────────────────"
  157. @ 18,03 say "Paint:            Trim:"
  158. @ 19,02 say "─────────────────────────────────────"
  159. @ 20,04 say "Engine:"
  160. @ 21,02 say "─────────────────────────────────────"
  161. @ 22,03 say "Chassis:"
  162.  
  163. do while STAT="N"
  164.     MDATEIN  = iif(empty(MDATEIN),date(),MDATEIN)
  165.     @ 10, 8 get MDATEIN picture "@K"  valid V2DATES(MDATEOUT,1)
  166.     MDATEOUT = iif(MEDITING .and. empty(MDATEOUT),date(),MDATEOUT)
  167.     @ 10,19 get MDATEOUT picture "@K" valid V2DATES(MDATEIN,2)
  168.     MDATEINV = iif(MEDITING .and. empty(MDATEINV),date(),MDATEINV)
  169.     @ 10,31 get MDATEINV picture "@K" valid V2DATES(MDATEOUT,2)
  170.     @ 12, 9 get MMAKEMODEL
  171.     @ 14,11 get MSPEEDO  picture "999999"
  172.     @ 14,27 get MFUEL picture "9" range 0,4
  173.     @ 16,11 get MREGNO picture "!!!!!!!!"
  174.     @ 16,27 get MYEAR
  175.     @ 18,10 get MPAINT picture "@S10"
  176.     @ 18,27 get MTRIM picture "@S10"
  177.     @ 20,12 get MENGNO  picture "@S24"
  178.     @ 22,12 get MCHASNO picture "@S24"
  179.  
  180.     if GETEM
  181.         DO qbread WITH "Fill in Vehicle details"
  182.         if GETOUT
  183.             exit
  184.         endif
  185.         STAT = QBYESNO("Vehicle details OK?")
  186.     else
  187.         clear gets
  188.         STAT = " "
  189.         do QBMESS
  190.     endif
  191. enddo
  192. set color to (COLNORM)
  193. restscreen(0,0,24,40,OLDSCR)
  194. return
  195.  
  196. ******************************************************************
  197.  
  198. procedure INVPAY
  199.  
  200. *       I N V P A Y
  201. *       Payment details
  202. parameters GETEM
  203.  
  204. set color to (COLNORM)
  205. private OLDSCR, STAT
  206. STAT = "N"
  207. OLDSCR = savescreen(7,0,23,39)
  208.  
  209. @ 14,00,24,39 BOX "┌─┐│┘─└│ "
  210. @ 14,02 say " Payment Details "
  211. @ 16,08 say "Cash or Account   (C/A)"
  212. @ 18,07 say "Retail, Int, Wty   (R/I/W)"
  213. @ 20,03 say "Customer group       for Reports"
  214.  
  215. do while STAT="N"
  216.     @ 16,24 get MACTYPE  picture "!" valid MACTYPE$"CA"
  217.     @ 18,24 get MWORKTYPE  picture "!" valid MWORKTYPE$"RIW"
  218.     @ 20,18 get MCUSTTYP  picture "!!!!"  valid VCUSTTYP(20,18,.f.)
  219.     if MINSTOPAY
  220.         @ 17,53 get MEXCESS picture "9999.99"
  221.         @ 18,53 get MCONTRIB picture "9999.99"
  222.     endif
  223.  
  224.     if GETEM
  225.         DO qbread WITH "Fill in Payment details"
  226.         STAT = QBYESNO("Payment details OK?")
  227.         if GETOUT
  228.             exit
  229.         endif
  230.     else
  231.         clear gets
  232.         STAT = " "
  233.         do QBMESS
  234.     endif
  235. enddo
  236. set color to (COLNORM)
  237. restscreen(7,0,23,39,OLDSCR)
  238. return
  239.  
  240. ******************************************************************
  241.  
  242. procedure INVINSLB
  243. parameters GETEM
  244.  
  245. private OLDSCR, STAT
  246. OLDSCR = savescreen(0,40,24,79)
  247. @ 3,40 clear to 24,79
  248. STAT = "N"
  249. set color to (COLNORM)
  250.  
  251. @ 02,61 say "Invoice no:"
  252. @ 03,41 say "┌─ Insurance Company ─────────────────┐"
  253. @ 04,41 say "│"+space(37)+"│"
  254. @ 05,41 say "│Name:"+space(32)+"│"
  255. @ 06,41 say "│Addr:"+space(32)+"│"
  256. @ 07,41 say "│"+space(37)+"│"
  257. @ 08,41 say "├─────────────────────────────────────┤"
  258. @ 09,41 say "│ Eng:"+space(32)+"│"
  259. @ 10,41 say "│ Tel:"+space(32)+"│"
  260. @ 11,41 say "├─────────────────────────────────────┤"
  261. @ 12,41 say "│ Estimate:"+space(27)+"│"
  262. @ 13,41 say "│    Claim:"+space(27)+"│"
  263. @ 14,41 say "│"+space(37)+"│"
  264. @ 15,41 say "╞══ Labour ═══════════════════════════╡"
  265. @ 16,41 say "│"+space(37)+"│"
  266. @ 17,41 say "│ Estimate no:                        │"
  267. @ 18,41 say "├─────────────────────────────────────┤"
  268. @ 19,41 say "│2:"+space(35)+"│"
  269. @ 20,41 say "│3:"+space(35)+"│"
  270. @ 21,41 say "│4:"+space(35)+"│"
  271. @ 22,41 say "├─────────────────────────────────────┤"
  272. @ 23,41 say "│        Total Labour charge          │"
  273. @ 24,41 say "└─────────────────────────────────────┘"
  274.  
  275.  
  276. do while STAT="N"
  277.     if MINSTOPAY
  278.         @ 05,48 get MINSCO
  279.         @ 06,48 get MINSADD1
  280.         @ 07,48 get MINSADD2
  281.         @ 09,48 get MINSENG
  282.         @ 10,48 get MINSTEL
  283.     endif
  284.     @ 12,53 get MESTNO valid COPYEST()
  285.     @ 13,53 get MCLAIMNO
  286.  
  287.     @ 17,56 get MLABESTNO
  288.     @ 17,71 get MLABOUR1 picture "9999.99"
  289.     @ 19,44 get ML2TEXT  picture "@S24"
  290.     @ 19,71 get MLABOUR2 picture "9999.99"
  291.     @ 20,44 get ML3TEXT  picture "@S24"
  292.     @ 20,71 get MLABOUR3 picture "9999.99"
  293.     @ 21,44 get ML4TEXT  picture "@S24"
  294.     @ 21,71 get MLABOUR4 picture "9999.99"
  295.  
  296.     if GETEM
  297.         do QBREAD with iif(MINSTOPAY,"Fill in Insurance Co and Labour details","Fill in Labour details")
  298.         MLABOURT = MLABOUR1 + MLABOUR2 + MLABOUR3 + MLABOUR4
  299.         set color to (COLHEAD)
  300.         @ 23,71 say MLABOURT picture "9999.99"
  301.         STAT = QBYESNO("Insurance/Labour details OK?")
  302.         if GETOUT
  303.             exit
  304.         endif
  305.     else
  306.         clear gets
  307.         stat = " "
  308.         set color to (COLHEAD)
  309.         @ 23,71 say MLABOURT picture "9999.99"
  310.         STAT = QBYESNO("Insurance/Labour details OK?")
  311.         set color to (COLNORM)
  312.         do QBMESS
  313.     endif
  314. enddo
  315.  
  316. restscreen(0,40,24,79,OLDSCR)
  317. set color to (COLNORM)
  318. return
  319.  
  320. ******************************************************************
  321.  
  322. function SINVNO
  323.  
  324. set color to (COLBRIGHT)
  325. @ 02,73 say MINVNO picture "99999"
  326. set color to (COLNORM)
  327.  
  328. return (.t.)
  329.  
  330. ******************************************************************
  331.  
  332. function GINVNO
  333. parameters OKNEW
  334. private SEEKVAR, OKMATCH, IINDEX
  335.  
  336. SINVNO()
  337.  
  338. select INVOICE
  339. IINDEX = QBPROMPT("Owner name|Invoice number|Quit|","Select method of searching",2)
  340. if IINDEX=1                     && Find by name
  341.     set index to INVNAME
  342.     @ 5,15 get MOWNNAME
  343.     do QBREAD with "Input Owner name (or part)",""
  344.     SEEKVAR = upper(trim(MOWNNAME))
  345. elseif IINDEX=2                 && Find by number
  346.     set index to INVNUM
  347.     @ 02,73 GET MINVNO picture "99999"
  348.     do QBREAD with "Input Invoice number",""
  349.     SEEKVAR = str(MINVNO,5)
  350. else
  351.     GETOUT = .t.
  352.     return (0)
  353. endif
  354.  
  355. do case
  356. case GETOUT                             && Just hit escape
  357.     return (0)
  358. case .not. empty(SEEKVAR)
  359.     set softseek off
  360.     seek SEEKVAR
  361. case empty(SEEKVAR)              && Did we get it?
  362.     if QBYESNO("Would you like to search for it?")="Y"
  363.         MINVNO = INVOWNGT(SEEKVAR)
  364.         SEEKVAR = iif(IINDEX=1,MOWNNAME,MINVNO)
  365.         return (MINVNO)
  366.     else
  367.         return (0)
  368.     endif
  369. endcase
  370.  
  371. do case                   && Result of that
  372. case GETOUT               && Just hit escape in INVOWNGT()
  373.     return (0)
  374. case eof()
  375.     QBPROMPT(iif(OKNEW,"Create new|","")+"Search|Quit|","Action for this non-existent Invoice",2)
  376.     do case
  377. *   case QBRESP="C"
  378. *       Do nothing....
  379.     case QBRESP="S"
  380.         MINVNO = INVOWNGT(SEEKVAR)
  381.     otherwise
  382.         return (0)
  383.     endcase
  384. otherwise
  385.     OKMATCH = iif(IINDEX=2,MINVNO=INVOICE->INVNO,SEEKVAR==upper(trim(INVOICE->OWNNAME)))
  386.     MINVNO = INVOICE->INVNO                 && In case answer=1
  387.     if .not. OKMATCH
  388.         if QBYESNO("Not an exact match - Would you like to search for it?")="Y"
  389.             MINVNO = INVOWNGT(SEEKVAR)
  390.         endif
  391.     elseif IINDEX=1
  392.         skip
  393.         if upper(trim(SEEKVAR))=upper(INVOICE->OWNNAME)
  394.             if QBYESNO("More matches - Would you like to search for it?")="Y"
  395.                 MINVNO = INVOWNGT(SEEKVAR)
  396.             else
  397.                 skip -1
  398.             endif
  399.         else
  400.             skip -1
  401.         endif
  402.     endif
  403. endcase
  404.  
  405. return (MINVNO)
  406.  
  407. ******************************************************************
  408.  
  409. function COPYEST
  410. private RETVAL, MEM, VARNAME
  411.  
  412. VARNAME = readvar()
  413. MEM = &VARNAME
  414. if empty(MLABESTNO)
  415.     MLABESTNO = MEM
  416. endif
  417.  
  418. return .t.
  419.  
  420. ******************************************************************
  421.